Home

Row

Data Refreshed July 2021

Marcin Beer Data

Unique Breweries

219

Personal Average Score

Global Average Score of Sample

Total Number of Check-Ins

598

Column

Top 12 Breweries With Minimum 5 Samples

Row

Top 10 Countries With Sample Size > 1

Map

Full Rating Table

---
title: "Beer Analytics"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
    social: ["linkedin"]
    source_code: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
library(knitr)
library(DT)
library(rpivotTable)
library(ggplot2)
library(openintro)
library(highcharter)
library(dplyr)
library(tidyverse)
library(plotly)



```

```{r}
data <- read.csv("~/Documents/GitHub/beer-data/data.csv")
```


```{r}
stateCount <- data %>% group_by(brewery_state) %>%
  summarize(count = n()) %>%
  arrange(desc(count))

stateCount$brewery_state <- abbr2state(stateCount$brewery_state)

```

```{r}
countryRatings <- data %>% select('brewery_country','rating_score')

countryRatings <- setNames(aggregate(countryRatings[,2], list(countryRatings$brewery_country),
                                     mean) %>% mutate_if(is.numeric, round, digits=2), c('brewery_country', 'AverageRating'))  

countCountries <- data %>% group_by(brewery_country) %>%
  summarize(count = n()) %>%
  arrange(desc(count))

countryRatings <- full_join(countryRatings,countCountries, by = 'brewery_country') %>%
  arrange(desc(AverageRating)) 
countryRatings <- filter(countryRatings, count > 1)
countryRatings <- head(countryRatings, 10)

```


```{r}
breweriesFormatted <- data %>% select('brewery_name','rating_score') 
  
breweriesFormatted <- setNames(aggregate(breweriesFormatted[,2], list(breweriesFormatted$brewery_name), mean) %>% mutate_if(is.numeric, round, digits=2), c('brewery_name', 'AverageRating'))  

breweriesFormatted<- breweriesFormatted[order(-breweriesFormatted$AverageRating), ]

topBreweries <- breweriesFormatted
topBreweries <- breweriesFormatted[order(-topBreweries$AverageRating), ]

countBreweries <- data %>% group_by(brewery_name) %>%
  summarize(count = n()) %>%
  arrange(desc(count))

mergedData <-
  full_join(topBreweries,countBreweries, by = 'brewery_name') 

mergedData <- filter(mergedData, count > 5) %>%
  arrange(desc(AverageRating)) 

mergedData <- setNames(mergedData, c('Brewery','AverageRating','Count')) 
```

Home
==================

Row
------------------

### Data Refreshed July 2021

```{r}
valueBox(paste('Marcin Beer Data'),
color = '#063970')
```

### Unique Breweries
```{r}
ss <- 1
valueBox(length(countBreweries$brewery_name),
         icon = 'fa-beer')
```

### Personal Average Score

```{r}
gauge(round(mean(data$rating_score),
            digits = 2),
            min = 0,
            max = 5,
            gaugeSectors(success = c(0,2),
                         warning = c(2,4),
                         danger = c(4,5),
                         colors = c('red','yellow','green')))
```

### Global Average Score of Sample

```{r}
gauge(round(mean(data$global_rating_score),
            digits = 2),
            min = 0,
            max = 5,
            gaugeSectors(success = c(0,2),
                         warning = c(2,4),
                         danger = c(4,5),
                         colors = c('red','yellow','green')))
```


### Total Number of Check-Ins
```{r}
valueBox(length(data$beer_name),
         icon = 'fa-pencil')
```

Column {data-width=350}
-----------------------------------------------------------------------

### Top 12 Breweries With Minimum 5 Samples

```{r}


  
mergedData <-  head(mergedData, 12)


mergedData$Brewery <- factor(mergedData$Brewery, levels = unique(mergedData$Brewery)[order(mergedData$AverageRating, decreasing = TRUE)])

topBreweryPlot <- plot_ly(mergedData, 
                          x = ~Brewery, 
                          y = ~AverageRating,
                          ascending = TRUE,
                          type = 'bar') %>%
layout(showlegend = FALSE)
                          
topBreweryPlot
          
```



Row
---------------------


### Top 10 Countries With Sample Size > 1

```{r}
countryRatings$brewery_country <- factor(countryRatings$brewery_country, levels = unique(countryRatings$brewery_country)[order(countryRatings$AverageRating, decreasing = TRUE)])

topCountryPlot <- plot_ly(countryRatings, 
                          x = ~brewery_country, 
                          y = ~AverageRating,
                          ascending = TRUE,
                          type = 'bar') %>%
layout(showlegend = FALSE)
                          
topCountryPlot

```

Map
=========================


```{r}

s <- map_data('state')


highchart() %>%
  hc_title(text = "Count of Beers by State") %>%
  hc_subtitle(text = "Heatmap") %>%
  hc_add_series_map(usgeojson, stateCount,
                    name = 'brewery_state',
                    value = 'count',
                    joinBy = c("woename", "brewery_state")) %>%
  hc_colorAxis(minColor = "wheat", maxColor = "darkgreen") %>%
  hc_mapNavigation(enabled = T)
```



Full Rating Table
========================
```{r}

dataSummary <- data %>% select('brewery_name','beer_name','brewery_country', 'brewery_state', 'rating_score', 'global_rating_score')
dataSummary <- setNames(dataSummary, c('Brewery Name','Beer Name','Brewery Country','Brewery State', 'My Rating', 'Global Rating'))

datatable(dataSummary,
          caption = 'Count of States',
          rownames = T,
          filter = 'top',
          options= list(pageLength = 25))



```